草庐IT

sql - 按 IF EXISTS 排序

全部标签

xml - SQL Server 使用 XML 参数插入 - 空字符串不会转换为数字的 null

我有一个存储过程,它接受一个XML参数并将“实体”节点作为记录插入到表中。这工作正常,除非其中一个数字字段在XML中具有空字符串值。然后它会抛出“将数据类型nvarchar转换为数字时出错”的错误。有没有办法让我告诉SQL将下面代码中的那些数字字段的空字符串转换为null?--@importDataXML编辑:如果有帮助,请采样XML。除非我在上面的代码中注释掉field3或在下面的field3中提供一个值,否则会抛出错误。2435843257-3242 最佳答案 如果你想使用SQLServerXQuery,你可以这样做:SELEC

sql - 如何在sql server 2005中给xml节点添加属性

如果我想向根元素记录添加一个属性,我可以从sql端执行此操作吗?SELECTtop1'text'asnodeAfromtestaszFORXMLAUTO,ELEMENTS,root('record')我想生成这样的xml:text 最佳答案 使用新的FORXMLPATH语法:SELECTTOP1'someValue'AS'@Attribute','text'as'z/NodeA'FROMdbo.TestWHERE....FORXMLPATH('YourElement'),ROOT('Root')这会给出类似的东西text在这里阅读更

c# - 使用 XPath 排序 - 不是 XSL

在XPathDOM编程中是否有任何方法可以使用System.Xml运行带有排序参数的selectNodes(XPATH)?例如,对于以下XML,程序会按照与文档相同的顺序(降序)写入值。有没有办法使用XPath以升序获取值?注意。当然,您可以在XSL中进行预排序,但是我需要在遍历这些值时更新这些值。由于XSL为我提供了元素的排序副本,而不是实际元素本身,因此我无法使用XSL。这是一些XML,程序输出publicstaticvoidMain(){XmlDocumentxml=newXmlDocument();xml.Load("t.xml");//SelectNodesgetsindoc

sql - 如何使用计算列的 sql 函数从 XML 中检索值

我有一个包含XML列的表,并像这样将XML保存到其中:1000NimaAgha我想要另一个包含列的表,我使用一个函数从每一行中检索Name元素的值。这样:IdName-----------------1Nima2Agha......我该怎么做?谢谢 最佳答案 像这样使用:CREATEFUNCTIONdbo.GetName(@xmlXML)RETURNSNVARCHAR(MAX)WITHRETURNSNULLONNULLINPUTASBEGINRETURN@xml.value('/Employees[1]/Person[1]/Name

xml - T-SQL 将 XML 字段转换为多列数据集

我想将XML字段“拆分”到多列数据集。XML看起来像:p1p2p3p4c1c2c3我尝试过做类似的事情(每次我在TSQL中使用XML时我都感到很痛苦,所以我的代码是错误的):;WITHsourceAS(SELECTCAST(@xmlstringASXML)ASx)SELECTitems.item.query('.')FROMsourceCROSSAPPLYx.nodes('/simple/*/value')ASitems(item)预期数据集:ColumnNameValue------------------------propertyidp1propertyidp2propertyi

sql - 如何从sql中的xml中检索所有父元素的所有子元素

joeljohnsararamsamdavidgeorgewilson期望的输出是:parent|child--------|---------joel|johnjoel|sarajoel|ramsam|davidsam|georgesam|wilson我尝试了以下sql查询来检索所有父元素的所有子元素,只有我能得到第一个子元素selecta.b.value('parent-name[1]','varchar(50)')asparent,a.b.value('child[1]','varchar(50)')aschildfrom@myxml.nodes('people/parent')

c# - 从 DataSet 创建 SQL Server 数据库

我在DataSet中读取了xsd和xml文件,现在我想从这个DataSet创建数据库foreach(DataTabledtintemp.Tables){foreach(DataColumndcindt.Columns){//exampleforonecolumnSqlCommandcreatetable=newSqlCommand("createtable"+dt.TableName+"("+dc.ColumnName+"varchar(max))",conn);createtable.ExecuteNonQuery();}}但我遇到了一些问题,当我创建数据库表时,我需要来自XSD的列

c# - 如何在 C# 中按节点属性对 XML 文件进行排序

不要求任何人为我编写此解决方案的代码-只是寻找有关最佳方法的指导。我正在使用C#代码在VS2015中处理.aspx文件。我发现了无数线程来解释如何对XML文件中的节点进行排序。但是,我还没有找到任何关于如何根据公共(public)子节点属性对具有相同结构的多个XML文件进行排序的线程。我的情况:我有一个包含数百个XML文件的目录,简单地命名为0001.xml到6400.xml。每个XML文件都具有相同的结构。我想根据子节点的属性对文件(而不是节点)进行排序。每个XML文件都有一个“项目”父节点和子节点“年”、“语言”和“作者”等。例如:2011JohnF.Smith如果我不想按0001

sql-server - sqlcmd 和/或 PowerShell 包装 XML 输出

我正在执行以下命令:sqlcmd-i"\\path\to\sqlfile.sql"-S"ServerName"-d"DBName"-y0其中sqlfile.sql是一些用于变量的DECLARE语句,然后是一棵嵌套的SELECT...FORXMLPath('...')语句最终生成一个大的XML字符串作为输出。在PowerShell命令提示符下,我将输出通过管道传输到一个文件:sqlcmd-i"\\path\to\sqlfile.sql"-S"ServerName"-d"DBName"-y0|Out-FileC:\path\to\output.xml(或者我可以在命令本身上使用-o,我对这

sql - 如何在 metamug XML 中使用小于 < 和大于 > 符号

如何在资源文件和SQL控制台中的metamugXML中使用小于“”的符号select*fromtbl_reservationwherefare>100andfare 最佳答案 首先和>在SQL控制台中工作与>没有>但要在resource中使用它们文件你必须按照下表转义它们更多aspertheseguideline所以你的查询将是select*fromtbl_reservationwherefarelt100andfaregt50000 关于sql-如何在metamugXML中使用小于符号